home *** CD-ROM | disk | FTP | other *** search
- /*------------------------------------------------------------------------*
-
- cookRawkeyTest.e - test and demonstrate usage of module cookRawkey.m
-
- *------------------------------------------------------------------------*/
-
- MODULE 'intuition/intuition',
- 'intuition/screens',
- 'graphics/rastport',
- 'tools/cookRawkey'
-
- CONST ESCAPE_KEY=27
-
- PROC main() HANDLE
- DEF win=NIL:PTR TO window,
- idcmpMessage:PTR TO intuimessage, idcmpCode, idcmpQualifier, iAddress,
- error, errorMessage, asciiChar
- /*------------------------------*
- Init rawkey conversion module.
- *------------------------------*/
- IF error:=warmupRawkeyCooker() THEN Raise(error)
- /*-- Convert rawkeys until ESC key is pressed. --*/
- IF win:=OpenW(20, 20, 500, 150,
- IDCMP_RAWKEY, WFLG_ACTIVATE,
- 'Press Escape to Quit', NIL, WBENCHSCREEN, NIL)
- REPEAT
- /*-- Wait on rawkey. --*/
- WHILE (idcmpMessage:=GetMsg(win.userport))=NIL DO WaitPort(win.userport)
- /*-- Copy intuimessage info, then reply. --*/
- idcmpCode:=idcmpMessage.code
- idcmpQualifier:=idcmpMessage.qualifier
- iAddress:=idcmpMessage.iaddress
- ReplyMsg(idcmpMessage)
- /*------------------------*
- Convert rawkey to ascii.
- *------------------------*/
- IF (asciiChar:=cookRawkey(idcmpCode, idcmpQualifier, iAddress)) <> ESCAPE_KEY
- TextF(20, 40, 'Key=\c', asciiChar)
- ENDIF
- UNTIL asciiChar=ESCAPE_KEY
- CloseW(win)
- ELSE
- WriteF('Can''t open window\n')
- ENDIF
- /*---------------------------------*
- Cleanup rawkey conversion module.
- *---------------------------------*/
- shutdownRawkeyCooker()
- EXCEPT
- errorMessage:='figger it out'
- /*--------------------------------------*
- Handle exceptions raised by conversion
- *--------------------------------------*/
- SELECT exception
- CASE "MEM"; errorMessage:='get memory'
- CASE ER_CREATEPORT; errorMessage:='create message port'
- CASE ER_CREATEIO; errorMessage:='create IO request'
- CASE ER_OPENDEVICE; errorMessage:='open console.device'
- CASE ER_ASKKEYMAP; errorMessage:='ask keymap'
- ENDSELECT
- WriteF('Could not \s!\n', errorMessage)
- /*---------------------------------*
- Cleanup rawkey conversion module.
- *---------------------------------*/
- shutdownRawkeyCooker()
- ENDPROC
-